Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Blad accept: Too many open files

Ostatnio zmodyfikowano 2025-02-02 23:08
Autor Wiadomość
pekfos
» 2025-02-02 23:08:16
w logach znowu widać, że celowo ktoś atakował.
A w jaki sposób to widać?

teraz serwera nie wywalilo, ale byly mega lagi i padł "login server" tj. nie można było zalogować się do gry ;p
Nie będziesz mógł się połączyć jeżeli atakujący zajął wszystkie możliwe połączenia. Jeżeli dobijasz do końca deskryptorów, to powinieneś mieć programowy limit połączeń po którym nie będziesz już robić accept() aż się miejsce nie zwolni. W ten sposób limit dalej jest, ale masz wolne deskryptory na robienie innych rzeczy, np otwieranie plików. Nie rozwiązuje to jednak problemu ataku na zajęcie tych N połączeń.
Zobacz co się dzieje jak połączysz się ze swoim serwerem z użyciem netcata. Jeżeli serwer pozwoli żeby połączenie stało bezczynnie, to jest źle. Serwer powinien oczekiwać że nastąpi sensowna komunikacja w ciągu max 1 sekundy po otwarciu połączenia, a najlepiej żeby to było uwierzytelnienie, w innym razie połączenie powinno być zamknięte. Jeżeli masz odrzucane połączenia z konkretnego adresu IP więcej niż np 10 razy w ciągu minuty, blokuj adres IP na np 5 minut, żeby odrzucać połączenia szybciej. Odrzucanie możesz zrobić nawet na poziomie firewalla, wtedy ruch w ogóle nie będzie dotykać aplikacji.
Nie zaszkodzi wiedzieć jak dokładnie wygląda atak, więc jeżeli zasoby pozwolą, możesz zapisywać ruch IP tcpdumpem, filtrując po TCP na tym konkretnym porcie. Jeżeli atak zawsze idzie z jednego adresu IP, możesz go zablokować firewallem jako taki tymczasowy fix.
P-182099
1 « 2 »
Poprzednia strona Strona 2 z 2